﻿using System;
using System.Collections.Generic;
using System.Text;
using GH.DBUtility;//请先添加引用
using System.Data;
namespace GH.DAL
{
    public class ModelWorker
    {
        //劳动模范
        public void Delete1(int ID)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append(" DELETE FROM 劳动模范");
            strSql.AppendFormat(" WHERE No={0}",ID);
            DbHelperSQL.ExecuteSql(strSql.ToString());
        }

        //先进集体统计表
        public void Delete2(int ID)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append(" DELETE FROM 先进集体统计表");
            strSql.AppendFormat(" WHERE No={0}", ID);
            DbHelperSQL.ExecuteSql(strSql.ToString());
        }


        /// <summary>
        /// 获得数据列表
        /// </summary>
        public DataSet GetList1(string strWhere)
        {
            string strSql = @"
                            select 
	                        劳动模范.No,
	                        劳动模范.单位,
	                        劳动模范.年份,
                            劳动模范.姓名,
	                        劳动模范.个人奖项,
	                        劳动模范.性别,
	                        CASE 性别 WHEN '0'  THEN '男'
                            ELSE  '女' END  AS 性别名称 ,
	                        CONVERT(varchar(100),出生年月, 23) AS 出生年月,
	                        CONVERT(varchar(100),获奖时间, 23) AS 获奖时间,
	                        劳动模范.文化程度,
	                        基本信息维护表.区分名称 AS 文化程度名称,
	                        劳动模范.政治面貌,
	                        基本信息维护表1.区分名称 AS 政治面貌名称,
	                        劳动模范.岗位及职务 
                        FROM 劳动模范
                        LEFT JOIN dbo.基本信息维护表
                        ON 劳动模范.文化程度=基本信息维护表.小区分
                        AND 基本信息维护表.大区分='101'
                        LEFT JOIN dbo.基本信息维护表 AS 基本信息维护表1
                        ON 劳动模范.政治面貌=基本信息维护表1.小区分
                        AND 基本信息维护表1.大区分='102'
            ";
            if (strWhere.Trim() != "")
            {
                strSql =strSql+" where " + strWhere;
            }
            return DbHelperSQL.Query(strSql.ToString());
        }


        /// <summary>
        /// 获得数据列表
        /// </summary>
        public DataSet GetList2(string strWhere)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select No,单位,集体奖项,单位名称,CONVERT(varchar(100),j集体获奖时间, 23) AS j集体获奖时间,备注 ");
            strSql.Append(" FROM 先进集体统计表 ");
            if (strWhere.Trim() != "")
            {
                strSql.Append(" where " + strWhere);
            }
            return DbHelperSQL.Query(strSql.ToString());
        }



        /// <summary>
        ///更新报表记录
        /// </summary>
        public bool UpdateList(System.Collections.Generic.List<GH.Model.劳动模范> listModel, System.Collections.Generic.List<GH.Model.先进集体统计表> listModel1, int intUnion, string strCurrentYear)
        {
            try
            {
                System.Collections.Generic.List<String> listStr = new System.Collections.Generic.List<string>();
                //删除当前记录
                System.Text.StringBuilder strSqlDelete = new StringBuilder();
                strSqlDelete.Append("delete from 劳动模范 ");
                strSqlDelete.AppendFormat(" where 单位={0}", 999);
                strSqlDelete.AppendFormat(" AND   年份={0}", strCurrentYear);
                listStr.Add(strSqlDelete.ToString());
                //遍历画面数据
                foreach (GH.Model.劳动模范 modDetail in listModel)
                {
                    StringBuilder strSqlInsert = new StringBuilder();

                    strSqlInsert.Append("insert into 劳动模范(");
                    strSqlInsert.Append("单位,年份,姓名,个人奖项,性别,出生年月,获奖时间,文化程度,政治面貌,岗位及职务)");
                    strSqlInsert.Append(" values (");
                    strSqlInsert.AppendFormat("{0},'{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')", 999, strCurrentYear, modDetail.姓名, modDetail.个人奖项, modDetail.性别, modDetail.出生年月, modDetail.获奖时间, modDetail.文化程度, modDetail.政治面貌, modDetail.岗位及职务);
                    listStr.Add(strSqlInsert.ToString());
                }

                //删除当前记录
                System.Text.StringBuilder strSqlDelete1 = new StringBuilder();
                strSqlDelete1.Append("DELETE FROM  先进集体统计表");
                strSqlDelete1.AppendFormat(" WHERE  单位={0}", 999);
                strSqlDelete1.AppendFormat(" AND   年份={0}", strCurrentYear);
                listStr.Add(strSqlDelete1.ToString());

                //遍历画面数据
                foreach (GH.Model.先进集体统计表 modDetail in listModel1)
                {
                    StringBuilder strSqlInsert = new StringBuilder();
                    strSqlInsert.Append("insert into 先进集体统计表(");
                    strSqlInsert.Append("单位,年份,集体奖项,单位名称,j集体获奖时间,备注)");
                    strSqlInsert.Append(" values (");
                    strSqlInsert.AppendFormat("{0},'{1}','{2}','{3}','{4}','{5}')", 999, strCurrentYear, modDetail.集体奖项, modDetail.单位名称, modDetail.j集体获奖时间, modDetail.备注);
                    listStr.Add(strSqlInsert.ToString());
                }
                DbHelperSQL.ExecuteSqlTran(listStr);
            }
            catch
            {
                return false;
            }
            return true;
        }

        public DataSet GetYearList()
        {
            string strSql = @"
                    SELECT  DISTINCT  年份  FROM  先进集体统计表
                    UNION
                    SELECT  DISTINCT  年份  FROM  劳动模范
                ";
            return DbHelperSQL.Query(strSql);
        }

    }
}
